﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Threading;


namespace DATN.mds.UserInterface
{
    public partial class InternalIndex : System.Web.UI.Page
    {
        private string cnnString;
        SqlConnection cnn;
        SqlCommand cmd;
        int us_id;
        Thread thread;
        protected void Page_Load(object sender, EventArgs e)
        {
                if (Session["UserName"] != null && Session["Us_Id"] != null)
                {
                    
                }
        }

        //Check Những Sinh Nhật Ngày Hôm Nay:
        string Rmail = "";
        protected string CheckUserBirthday(int us_id)
        {
            SqlDataReader rdr = null;
            try
            {
                string cnnString = ConfigurationManager.ConnectionStrings["DATNconnection"].ConnectionString;
                cnn = new SqlConnection(cnnString);
                cnn.Open();

                String queryString = "SELECT * FROM Customers "
                        + " WHERE DATEPART(MONTH,Birthday) = DATEPART(MONTH,GETDATE())"
                        + " AND DATEPART(DAY, Birthday)  = DATEPART(DAY,GETDATE())"
                        + " AND Us_Id = @Us_Id";

                cmd = new SqlCommand(queryString, cnn);
                cmd.Parameters.Add("@Us_Id", SqlDbType.Int);
                cmd.Parameters["@Us_Id"].Value = us_id;

                rdr = cmd.ExecuteReader();

                if (rdr == null)
                {
                    lbCusBirthday.Text += "Không có";
                }
                else
                {
                    lbCusBirthday.Text = "- Những Khách Hàng sinh nhật hôm nay: ";
                }

                while (rdr.Read())
                {
                    lbCusBirthday.Text += " ["+(string)rdr["LastName"] + " "
                                + (string)rdr["FirstName"] +"]"+ ",";
                }
            }
            catch (Exception ex)
            {
                lbCusBirthday.Text = " Chưa nhập dữ liệu";
            }
            return Rmail;
        }

        protected void ProduceStatic()
        {
            try
            {
                cnnString = ConfigurationManager.ConnectionStrings["DATNconnection"].ToString();
                cnn = new SqlConnection(cnnString);
                cnn.Open();

                // Số lượng khách hàng hiện có
                string sql1 = "Select COUNT(Pro_Id) from Products where Us_Id =" + Session["Us_Id"];
                cmd = new SqlCommand(sql1, cnn);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                lbProduces1.Text +=  result + " Sản phẩm";

                // Tổng tiền của sản phẩm là:
                string sql2 = "SELECT SUM(Price) FROM Products where Us_Id =" + Session["Us_Id"];
                cmd = new SqlCommand(sql2, cnn);
                int result2 = Convert.ToInt32(cmd.ExecuteScalar());
                lbProduces2.Text += result2 + " (VND) ";

                cnn.Close();
            }
            catch (Exception ex)
            {
                cnn.Close();
                lbProduces1.Text = " Chưa nhập dữ liệu";
            }
        }

        //Button thông tin thêm của Khách Hàng
        protected void bt_ttAll_Click(object sender, EventArgs e)
        {
            //Xem thông tin Những cus sinh nhật ngày hôm nay:
            CheckUserBirthday(Convert.ToInt16(Session["Us_Id"].ToString()));
            Lb_tt1.Visible = true;
            Lb_tt2.Visible = true;
            Lb_tt3.Visible = true;
            Lb_tt4.Visible = true;
            Lb_tt5.Visible = true;
            Lb_tt6.Visible = true;
            Lb_tt7.Visible = true;
            Lb_tt8.Visible = true;
            Lb_tt9.Visible = true;
            Lb_tt10.Visible = true;
            Lb_tt11.Visible = true;
            Lb_tt12.Visible = true;
            Lb_tt13.Visible = true;
            Lb_tt14.Visible = true;
            Lb_tt15.Visible = true;
            Lb_tt16.Visible = true;
            Lb_tt17.Visible = true;
            Lb_tt18.Visible = true;

            Lb_tt19.Visible = true;
            Lb_tt20.Visible = true;
            Lb_tt21.Visible = true;
            Lb_tt22.Visible = true;
            Lb_tt23.Visible = true;

            Label1.Visible = true;

            bt_Thugon.Visible = true;
            try
            {
                cnnString = ConfigurationManager.ConnectionStrings["DATNconnection"].ToString();
                cnn = new SqlConnection(cnnString);
                cnn.Open();

                // Số lượng khách hàng hiện có
                string sql1 = "select count(Cus_Id) from Customers where Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql1, cnn);
                int result1 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt1.Text = "Số lượng khách hàng bạn có là:  <b>" + result1 + "</b> Khách hàng";

                //Giới Tính
                //Số lượng khách hàng nam là:
                string sql2 = "SELECT count(Sex) FROM Customers WHERE Sex = '1' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql2, cnn);
                int result2 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt2.Text = "<br/><b>Giới tính khách hàng</b> : <br/>- Có <b>" + result2 + "</b> Khách hàng - Nam";
                // Số lượng khách hàng nữ là:
                string sql3 = "SELECT count(Sex) FROM Customers WHERE Sex = '2' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql3, cnn);
                int result3 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt3.Text = " - Có <b>" + result3 + "</b> Khách hàng - Nữ";
                // Số lượng khách có giới tính khác là:
                int result4 = result1 - (result2 + result3);
                Lb_tt4.Text = " - Có <b>" + result4 + "</b> Khách hàng - Giới tính Khác<br/>";

                //Tình trang hôn nhân
                //Độc thân
                string sql5 = "SELECT count(MaritalStatus) FROM Customers WHERE MaritalStatus = '1' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql5, cnn);
                int result5 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt5.Text = "<b>Tình trang hôn nhân:</b> <br/> - Có <b>" + result5 + "</b> Khách hàng - Độc thân";
                //Kết hôn:
                string sql6 = "SELECT count(MaritalStatus) FROM Customers WHERE MaritalStatus = '2' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql6, cnn);
                int result6 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt6.Text = "- Có <b>" + result6 + "</b> Khách hàng - Đã kết hôn";
                //Khác
                int result7 = result1 - (result5 + result6);
                Lb_tt7.Text = "- Có <b>" + result7 + "</b> Khách hàng - Tình Trạng hôn nhân khác ";

                //Job
                //Kinh doanh
                string sql8 = "SELECT count(Job) FROM Customers WHERE Job = '1' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql8, cnn);
                int result8 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt8.Text = "<b>Nghề Nghiệp:</b> <br/> - Có <b>" + result8 + "</b> Khách hàng - Làm Kinh Doanh";
                //Văn phòng
                string sql9 = "SELECT count(Job) FROM Customers WHERE Job = '2' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql9, cnn);
                int result9 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt9.Text = " - Có <b>" + result9 + "</b> Khách hàng - Nhân Viên Văn Phòng";
                //NV kĩ thuật
                string sql10 = "SELECT count(Job) FROM Customers WHERE Job = '3' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql10, cnn);
                int result10 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt10.Text = " - Có <b>" + result10 + "</b> Khách hàng - Nhân Viên Kĩ Thuật";
                //Học sinh, Sinh Viên
                string sql11 = "SELECT count(Job) FROM Customers WHERE Job = '4' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql11, cnn);
                int result11 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt11.Text = " - Có <b>" + result11 + "</b> Khách hàng - Nhân Viên Học Sinh, Sinh Viên";
                //nv nhà nc
                string sql12 = "SELECT count(Job) FROM Customers WHERE Job = '5' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql12, cnn);
                int result12 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt12.Text = " - Có <b>" + result12 + "</b> Khách hàng - Nhân Viên Nhà Nước";
                //nông dân
                int result13 = result1 - (result8 + result9 + result10 + result11 + result12);
                Lb_tt13.Text = "- Có <b>" + result13 + "</b> Khách hàng - Nông dân, người lao động ";

                //Độ tuổi
                //1-7
                string sql14 = "SELECT count(Birthday) FROM Customers WHERE Birthday > '1/1/2005' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql14, cnn);
                int result14 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt14.Text = "<br/><b>Độ tuổi </b> <br/>- Có <b>" + result14 + "</b> Khách hàng - Từ 1- 7 Tuổi";
                //8-15
                string sql15 = "SELECT count(Birthday) FROM Customers WHERE Birthday > '1/1/1997' AND Birthday < '1/1/2005' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql15, cnn);
                int result15 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt15.Text = "- Có <b>" + result15 + "</b> Khách hàng - Từ 8- 15 Tuổi";
                //16-24
                string sql16 = "SELECT count(Birthday) FROM Customers WHERE Birthday > '1/1/1988' AND Birthday < '1/1/1997' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql16, cnn);
                int result16 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt16.Text = "- Có <b>" + result16 + "</b> Khách hàng - Từ 16- 24 Tuổi";
                //25-36
                string sql17 = "SELECT count(Birthday) FROM Customers WHERE Birthday > '1/1/1976' AND Birthday < '1/1/1988' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql17, cnn);
                int result17 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt17.Text = "- Có <b>" + result17 + "</b> Khách hàng - Từ 25- 36 Tuổi";
                //36-45
                string sql18 = "SELECT count(Birthday) FROM Customers WHERE Birthday < '1/1/1976' AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql18, cnn);
                int result18 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt18.Text = "- Có <b>" + result18 + "</b> Khách hàng trên 37 Tuổi";

                //Mức lương
                //dưới 5 tr.
                string sql19 = "SELECT count(Salary) FROM Customers WHERE Salary < 6 AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql19, cnn);
                int result19 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt19.Text = " - Có <b>" + result19 + "</b> Khách hàng - Mức lương dưới 5 triệu";
                //Từ 5-10
                string sql20 = "SELECT count(Salary) FROM Customers WHERE Salary >= 6 AND Salary < 11 AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql20, cnn);
                int result20 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt20.Text = "- Có <b>" + result20 + "</b> Khách hàng - Mức lương từ 5 đến 10 triệu";
                //Từ 10-20
                string sql21 = "SELECT count(Salary) FROM Customers WHERE Salary >= 11 AND Salary < 21 AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql21, cnn);
                int result21 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt21.Text = "<br/>- Có <b>" + result21 + "</b> Khách hàng - Mức lương từ 10 đến 20 triệu";
                //Trên 20
                string sql22 = "SELECT count(Salary) FROM Customers WHERE Salary >= 21 AND Us_Id = " + Session["Us_Id"];
                cmd = new SqlCommand(sql22, cnn);
                int result22 = Convert.ToInt32(cmd.ExecuteScalar());
                Lb_tt22.Text = "- Có <b>" + result22 + "</b> Khách hàng - Mức lương trên 20 triệu";

                //Địa Điểm:


                //Lb_tt9.Text = TinhSoTuoi();
                cnn.Close();
            }
            catch (Exception ex)
            {
                cnn.Close();
                Response.Write(ex);
            }
        }

        //Button Thu gọn:
        protected void bt_Thugon_Click(object sender, EventArgs e)
        {

            //Note Remind
            Session["Remind"] = null;
            Label1.Text = "";
            Lb_tt1.Text = "";
            Lb_tt2.Text = "";
            Lb_tt3.Text = "";
            Lb_tt4.Text = "";
            Lb_tt5.Text = "";
            Lb_tt6.Text = "";
            Lb_tt7.Text = "";
            Lb_tt8.Text = "";
            Lb_tt9.Text = "";
            Lb_tt10.Text = "";
            Lb_tt11.Text = "";
            Lb_tt12.Text = "";
            Lb_tt13.Text = "";
            Lb_tt14.Text = "";
            Lb_tt15.Text = "";
            Lb_tt16.Text = "";
            Lb_tt17.Text = "";
            Lb_tt18.Text = "";
            Lb_tt19.Text = "";
            Lb_tt20.Text = "";
            Lb_tt21.Text = "";
            Lb_tt22.Text = "";
            Lb_tt23.Text = "";
        }

        //Button Sản phẩm
        protected void btnProduce_Click(object sender, EventArgs e)
        {

            //Note Remind
            Session["Remind"] = null;
            //Thông tin Về sản phẩm.
            ProduceStatic();
        }

        protected void btnContact_Click(object sender, EventArgs e)
        {
            Response.Redirect("../mds.ContactManagement/ImportExcel.aspx");
        }

        protected void btnOpp_Click(object sender, EventArgs e)
        {
            Response.Redirect("../ImportExcel/ImportOpp.aspx");
        }

        protected void btnProduct_Click(object sender, EventArgs e)
        {
            Response.Redirect("../ImportExcel/ImportProduces.aspx");
        }

        protected void btnNote_Click(object sender, EventArgs e)
        {
            Response.Redirect("../ImportExcel/ImportNotes.aspx");
        }
    }
}